Simulink-Modell in ein Projekt importieren
Neuron Power Engineer ermöglicht es Ihnen, ein vorhandenes →Simulink-Modell in ein →Projekt von Neuron Power Engineer zu importieren Der Import ist nicht in allen Varianten von Neuron Power Engineer verfügbar.
Inhalt dieses Artikels:
In diesem Artikel: |
---|
Voraussetzung für die Verwendung des Imports
-
Sie haben die benötigte Lizenzierung installiert.
-
Sie haben das Installationspaket
com.logicals.simulink.export-x.y.z.zip
von Neuron erhalten.x.y.z
steht für die entsprechende Versionsnummer.
Dieses Installationspaket enthält Scripts, die Sie in MATLAB ausführen müssen. -
Sie verwenden Version 2021a von MATLAB und Embedder Coder als Code-Generator (siehe https://de.mathworks.com/products/embedded-coder.html).
-
Der Import unterstützt nur zeitdiskrete Simulink-Modelle (= time discrete Simulink models). 2 oder mehrere unterschiedliche "Sampling Times" in einem Simulink-Modell werden beim Import nicht unterstützt. Beachten Sie zusätzlich: Falls das Simulink-Modell von der Zykluszeit abhängt, muss der Simulink-Anwender darüber entscheiden, wie dies im Simulink-Modell gelöst werden kann. Beispielsweise ist es möglich, einen speziellen Eingang im Simulink-Modell zu definieren, der dann in Neuron Power Engineer importiert wird. In der Neuron Power Engineer-Anwendung müssen dann die Zeitwerte diesem Eingang übergeben werden.
-
Das Simulink-Modell entspricht den Vorgaben für einen erfolgreichen Import.
-
Im Simulink-Model: Verwenden Sie POE-eindeutige Namen (wenn möglich, sogar projekt- und POE-eindeutig) für alle C-Identifier, die in einem globalen Namespace verfügbar sind. Siehe "Grundregeln für das Arbeiten, Erstellen von Bausteinen mit C-Code" für Details.
-
Sie verwenden die gleiche Neuron Power Engineer-Version für beide Teil-Schritte des Imports:
Simulink-Modell als Neuron Power Engineer MATLAB-Export-Bundle exportieren
-
Entpacken Sie das Installationspaket
com.logicals.simulink.export-x.y.z.zip
in einen beliebigen Ordner. -
Fügen Sie den Pfad mit den entpackten Scripts dem Suchpfad von MATLAB hinzu.
-
Möglichkeit 1: Navigieren Sie in MATLAB zum Pfad mit den entpackten Scripts. Öffnen Sie das Kontextmenü für den Ordner und wählen Sie den Befehl Add to Path und Selected Folders aus.
-
Möglichkeit 2: Geben Sie im MATLAB Command Window den folgenden Befehl ein (ersetzen Sie
path_to_folder_with_scripts
durch den Pfad mit den entpackten Scripts):addpath('path_to_folder_with_scripts')
-
Möglichkeit 3, damit der Pfad permanent eingefügt wird: Wählen Sie Set Path (in der Gruppe ENVIRONMENT) des Registers HOME in der Multifunktionsleiste von MATLAB. Klicken Sie auf Add Folder..., fügen Sie den Pfad mit den entpackten Scripts hinzu und drücken Sie Save.
-
-
Öffnen Sie das Simulink-Modell und – falls vorhanden – die jeweiligen Projekte in MATLAB.
Grund: Die Projekte können sogenannte "Data Dictionaries" mit benutzerdefinierten Typen enthalten. -
Führen Sie eines der folgenden Scripts im MATLAB Command Window aus:
Script 1: Bundle basierend auf einem Modell erzeugen |
---|
|
Ersetzen Sie dabei die Parameter modelName
durch den Namen des geöffneten Modells und outputFolder
durch den Pfad, in dem das Neuron Power Engineer-MATLAB-Export-Bundle abgelegt werden soll.
Beispiel: generateLogiCAD3BundleFromModel('fuelsys_dd_controller', "C:\data\exported_bundles")
Script 2: Bundle basierend auf einem Modell und Subsystem erzeugen |
---|
|
Ersetzen Sie dabei die Parameter modelName
und outputFolder
analog zu Script 1. Zusätzlich ersetzen Sie subsystemQualifiedName
durch den qualifizierten Namen des Subsystems.
Beispiel: generateLogiCAD3BundleFromSubsystem('Overrun', 'Overrun/OvrRun', "C:\data\exported_bundles")
Ergebnis des Scripts: Ein Neuron Power Engineer-MATLAB-Export-Bundle wird auf Basis der angegebenen Daten erzeugt. Der Name dieses Neuron Power Engineer-MATLAB-Export-Bundle ist: Simulink_Model_Name_logiCAD3Bundle.zip
oder Subsystem_Name_logiCAD3Bundle.zip
–
Beispiel: OvrRun_logiCAD3Bundle.zip
(OvrRun
ist der Name des Subsystems.)
Mögliche Warnungen Warnungen weisen Sie darauf hin, falls das Simulink-Modell die folgenden Simulink-Elemente enthält (siehe unter "Vorgaben für einen erfolgreichen Import" für Details zu diesen Elementen):
|
Neuron Power Engineer MATLAB-Export-Bundle in die Neuron Power Engineer importieren
So importieren Sie das erzeugte Neuron Power Engineer-MATLAB-Export-Bundle in das Projekt von Neuron Power Engineer:
-
Im Menü Datei oder im Kontextmenü der Sicht mit Projekten/Ressourcen wählen Sie Importieren....
-
Im Assistenten klappen Sie die Kategorie Simulink-Modell-Import auf, wählen Sie Import eines Simulink-Modells und drücken Sie Weiter >.
Um einen bestimmten Assistenten zu finden: Tippen Sie einen Text (z.B.Simulink
) im Feld unter Einen Import-Assistenten wählen ein, um nur jene Assistenten anzuzeigen, die dem Text im Feld entsprechen. -
Auf der nächsten Seite des Assistenten führen Sie diese Schritte aus:
-
Tippen Sie den vollständigen Pfad und den Dateinamen des zuvor erzeugten Neuron Power Engineer-MATLAB-Export-Bundles im Textfeld (links von Simulink-Bundle) ein. Alternative: Drücken Sie die Schaltfläche Durchsuchen..., um Pfad und Dateinamen im Dateisystem zu wählen.
-
Wählen Sie das Projekt, in das das Neuron Power Engineer-MATLAB-Export-Bundle importiert werden soll, in der Liste unter Ziel-Projekt aus.
Diese Liste enthält alle Projekte, die in der Sicht geöffnet sind. -
Drücken Sie Fertigstellen, um den Import zu starten.
Ergebnis: Die folgenden Objekte werden im Projekt erstellt. Diese Objekte basieren auf dem Neuron Power Engineer-MATLAB-Export-Bundle:Objekt-Typ
Bedeutung
Das ST-Objekt hat den Namen des Simulink-Modells. Es enthält zumindest einen →Vendor-Baustein vom Typ "Funktionsbaustein" mit dem gleichen Namen. Abhängig davon, welches Simulink-Model exportiert wurde, können auch andere ST-Sprachelemente im ST-Objekt enthalten sein, z.B. ein →strukturierter Datentyp.
Strings werden mit einer Standard-Stringlänge von256
importiert.
Bearbeiten Sie diese ST-Sprachelemente nicht! Falls Sie doch Änderungen machen, stimmen die ST-Sprachelemente nicht mehr mit dem importierten Simulink-Modell überein.Sie können diesen erzeugten Funktionsbaustein wie jeden anderen Funktionsbaustein in Ihrer Neuron Power Engineer-Anwendung verwenden. Erstellen Sie z.B. eine →Funktionsbaustein-Instanz und rufen Sie diese Funktionsbaustein-Instanz auf oder fügen Sie den Funktionsbaustein in eine Bibliothek ein.
Verweise auf weiterführende Dokumentation:
-
Siehe "Deklaration von Funktionsbaustein-Instanzen in ST" und "Aufruf der Funktionsbaustein-Instanz in ST" für die ST-Syntax zum Instanziieren/Aufrufen des Funktionsbausteins.
-
Siehe "Unterstützte ST-Syntax" für eine Liste aller möglichen ST-Elemente
-
Siehe die englische Dokumentation "Administrator's Manual" für Informationen über die Pragmas eines Vendor-Bausteins, wie z.B. zu
{ CustomImplementation, CustomNamespace := Simulink }
.
H- und C-Dateien
Der erstellte Vendor-Funktionsbaustein benötigt H- und C-Dateien, die die Implementierung des Vendor-Funktionsbausteins enthält. Diese Dateien werden automatisch beim Import im Projekt erstellt. Standardmäßig werden sie im Unterordner
src-code
-code des vorgegebenen Projekt-Unterordnerssrc
angezeigt.Zusätzlich werden die H- und C-Dateien aus MATLAB in das Projekt importiert. Standardmäßig werden diese Dateien im Projekt im Unterordner
src-code
parallel zum vorgegebenen Projekt-Unterordnerssrc
angezeigt.Damit diese H- und C-Dateien nicht irrtümlich bearbeitet werden und weiterhin mit dem importierten Simulink-Modell übereinstimmen, bietet Ihnen Neuron Power Engineer diese Möglichkeiten:
-
Mit Hilfe der Konfigurationsvariable
lc3.src_code.filter.enable
können Sie den Unterordnersrc-code
mit den C-/H-Dateien ausblenden. Details zu den Konfigurationsvariablen finden Sie in der englischen Dokumentation "Administrator's Manual". -
Standardmäßig sind die H-/C-Dateien für das importierte Simulink-Modell schreibgeschützt. Falls die C-/H-Dateien angezeigt werden und Sie eine dieser Dateien bearbeiten, weist Sie eine Meldung auf diesen Schreibschutz hin. Entfernen Sie in Folge nicht den Schreibschutz, damit die H-/C-Dateien mit dem importierten Simulink-Modell auch weiterhin übereinstimmen.
Die Bibliothekskonfiguration enthält bereits den Vendor-Funktionsbaustein als Bibliothekselement – und zwar bei der Anweisung
IEC :=
Mit Hilfe dieser Bibliothekskonfiguration können Sie eine Bibliothek erstellen, der den Vendor-Funktionsbaustein enthält.
Verweise auf weiterführende Dokumentation:
-
Siehe "Syntax für Bibliothekskonfiguration" für die Syntax der Bibliothekskonfiguration.
-
Siehe "Eigene Bibliothek erstellen und bereitstellen" für Anweisungen zum Erzeugen/Bereitstellen/Installieren einer Bibliothek.
-
-
Mögliche Warnungen
Warnungen weisen Sie darauf hin, falls der Import einen Konflikt mit einem bereits vorhandenen Element im Neuron Power Engineer-Projekt entdeckt (siehe unter "Vorgaben für das Simulink-Modell"). In Folge wird das importierte Element auf einen eindeutigen Namen umbenannt. |
Mögliche Fehlerquellen beim Import Die Meldungen Der Import des Metamodells ist fehlgeschlagen (im Assistenten und im Fehlerprotokoll) und Index 0 out of bounds for length 0 (nur im Fehlerprotokoll) weisen darauf hin, dass der Import nicht erfolgreich durchgeführt wurde. |
Vorgaben für das Simulink-Modell
Unterstützte Elemente
Die folgende Simulink-Elemente werden unterstützt (= ) und erfolgreich importiert:
-
primitive Datentypen laut https://de.mathworks.com/help/simulink/ug/data-types-supported-by-simulink.html – mit der Ausnahme der Fixed-Point-Datentypen
-
diese nicht-primitive Datentypen:
-
ein-dimensionale Arrays
-
multi-dimensionale Arrays (bis zu 4 Dimensionen)
-
Enumerations (= Aufzählungen)
-
Strukturen (= nicht-virtueller
Simulink.Bus
) -
verschachtelte Strukturen
-
virtueller
Simulink.Bus
-
Nicht-unterstützte Elemente
Die folgende Simulink-Elemente werden nicht unterstützt (= ):
-
jeder Fixed-Point-Datentyp, z.B.
half
-
Code-Mapping-Customization, wie z.B. Storage Class, Custom-Funktionsname
Falls das Simulink-Modell diese nicht-unterstützten Simulink-Elemente enthält, kann das Neuron Power Engineer-MATLAB-Export-Bundle nicht erzeugt werden. Entsprechende Meldungen weisen beim Ausführen der Scripts auf den Fehler hin. Diese Meldungen werden nur in englischer Sprache ausgegeben.
Automatisch korrigierte Elemente
Die folgenden Simulink-Elemente würden entweder in Neuron Power Engineer als fehlerhaft gemeldet werden oder beim Erstellen der Anwendung einen Fehler verursachen (= ):
-
Elemente, falls deren Name einem reservierten Schlüsselwort in ST entspricht – Solche Elemente werden in Neuron Power Engineer als fehlerhaft gekennzeichnet.
Beispiel: Ein Element mit dem NamenEN
wird in Neuron Power Engineer als fehlerhaft markiert, da der NameEN
für den EingangEN
reserviert ist -
Elemente, falls deren Name kein gültiger →IEC-Bezeichner ist – Solche Elemente werden in Neuron Power Engineer als fehlerhaft gekennzeichnet.
Beispiel: Simulink erlaubt ein Element mit dem NamenLIM__SW5
. In Neuron Power Engineer ist dieser Name jedoch nicht zulässig, da ein Name ein gültiger IEC-Bezeichner sein muss. -
Elemente (z.B. Variablen), falls deren Namen mit unterschiedlichen Groß- und Kleinbuchstaben geschrieben sind – Solche Elemente können einen Fehler beim Erstellen der Anwendung in Neuron Power Engineer verursachen.
Beispiel: Simulink erlaubt 2 unterschiedliche VariablenVar1
undVAR1
. In Neuron Power Engineer werden jedochVar1
undVAR1
als das gleiche Element identifiziert. Diese unterschiedliche Interpretation vonVar1
undVAR1
verursacht wahrscheinlich einen Fehler beim Erstellen der Anwendung, in der der Funktionsbaustein mitVar1
undVAR1
enthalten ist.
Beim Export des Simulink-Modells mit solchen Simulink-Elementen (als Neuron Power Engineer-MATLAB-Export-Bundle) werden daher entsprechende Warnungen ausgegeben. Beim nachfolgenden Import des Neuron Power Engineer-MATLAB-Export-Bundle in Neuron Power Engineer werden die Namen dieser Elemente automatisch so korrigiert, dass die korrigierten Namen nicht als fehlerhaft gekennzeichnet werden bzw. keinen Fehler beim Erstellen der Anwendung verursachen.
Die folgenden Simulink-Elemente werden erst beim Import des Neuron Power Engineer-MATLAB-Export-Bundle in Neuron Power Engineer gemeldet (= ):
-
Datentypen, wenn ein Element mit dem gleichen Namen bereits im Neuron Power Engineer-Projekt vorhanden ist
-
Funktionsbausteine, wenn ein Element mit dem gleichen Namen bereits im Neuron Power Engineer-Projekt vorhanden ist
Beim Import werden diese Elemente des Simulink-Modells automatisch auf einen eindeutigen Namen umbenannt, da andernfalls Elemente mit dem gleichen Namen einen Konflikt verursachen würden.